package com.hereiam.modelo;

// Generated Mar 27, 2014 8:27:18 PM by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Comentario generated by hbm2java
 */
@Entity
@Table(name = "comentario", catalog = "androidproject")
public class Comentario implements java.io.Serializable {

	private int idComentario;
	private Usuario usuario;
	private Idioma idioma;
	private String texto;
	private Double coordX;
	private Double coordY;
	private Integer puntuacion;
	private Date fechaCreacion;
	private Set<Usuario> usuarios = new HashSet<Usuario>(0);
	private Set<Multimedia> multimedias = new HashSet<Multimedia>(0);

	public Comentario() {
	}

	public Comentario(int idComentario, Usuario usuario) {
		this.idComentario = idComentario;
		this.usuario = usuario;
	}

	public Comentario(int idComentario, Usuario usuario, Idioma idioma,
			String texto, Double coordX, Double coordY, Integer puntuacion,
			Date fechaCreacion, Set<Usuario> usuarios,
			Set<Multimedia> multimedias) {
		this.idComentario = idComentario;
		this.usuario = usuario;
		this.idioma = idioma;
		this.texto = texto;
		this.coordX = coordX;
		this.coordY = coordY;
		this.puntuacion = puntuacion;
		this.fechaCreacion = fechaCreacion;
		this.usuarios = usuarios;
		this.multimedias = multimedias;
	}

	@Id
	@Column(name = "id_comentario", unique = true, nullable = false)
	public int getIdComentario() {
		return this.idComentario;
	}

	public void setIdComentario(int idComentario) {
		this.idComentario = idComentario;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_usuario", nullable = false)
	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_idioma")
	public Idioma getIdioma() {
		return this.idioma;
	}

	public void setIdioma(Idioma idioma) {
		this.idioma = idioma;
	}

	@Column(name = "texto", length = 500)
	public String getTexto() {
		return this.texto;
	}

	public void setTexto(String texto) {
		this.texto = texto;
	}

	@Column(name = "coord_X", precision = 22, scale = 0)
	public Double getCoordX() {
		return this.coordX;
	}

	public void setCoordX(Double coordX) {
		this.coordX = coordX;
	}

	@Column(name = "coord_Y", precision = 22, scale = 0)
	public Double getCoordY() {
		return this.coordY;
	}

	public void setCoordY(Double coordY) {
		this.coordY = coordY;
	}

	@Column(name = "puntuacion")
	public Integer getPuntuacion() {
		return this.puntuacion;
	}

	public void setPuntuacion(Integer puntuacion) {
		this.puntuacion = puntuacion;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fecha_creacion", length = 19)
	public Date getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	@ManyToMany(fetch = FetchType.LAZY, mappedBy = "comentarios_1")
	public Set<Usuario> getUsuarios() {
		return this.usuarios;
	}

	public void setUsuarios(Set<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "comentariomultimedia", catalog = "androidproject", joinColumns = { @JoinColumn(name = "id_comentario", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "id_multimedia", nullable = false, updatable = false) })
	public Set<Multimedia> getMultimedias() {
		return this.multimedias;
	}

	public void setMultimedias(Set<Multimedia> multimedias) {
		this.multimedias = multimedias;
	}

}
